package day12.collection.demo;

import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;
/*
* 一旦我使用多态，就相当于把父类对象指向了子类对象，只能使用父类已经声明过的方法，毕竟经过编译器的检验了，不能调子类的独有方法。毕竟编译看左边，左边得有啊，想调的话就不能用多态，老老实实用子类的实例化对象。
* 因为编译器只检查变量左边是什么类型，但是虚拟机会看你右边。你直接调子类独有方法，编译器懵了
*
*
*
*
* */
public class demo2 {
    public static void main(String[] args) {
       LinkedList<String> list =new LinkedList<>();
       list.addLast("java");//尾插，基于双向链表，有前节点后节点的地址.主要是因为插入删除太快了，所以才拿他模拟队列去模拟出跟入
       list.addFirst("hello");//首插



        //出
        System.out.println(list.removeFirst());

        // list.addFirst("python");
//         A a=new B();
//         a.show2();

       F f=new S();
//        f.show2();
//        S s=new S();
//        s.show2();
        f.show3();

    }
}
//帮我写一个接口和一个实现类
interface A{
    void show();

}
class B implements A{
    @Override
    public void show() {
        System.out.println("show");
    }
    public void show2(){}
}//帮我写两个类，一个父类一个子类
class F{
    public void show(){
        System.out.println("show");
    }
    void show3(){
        System.out.println("父类show3");
    }
}
class S extends F{
    public void show(){
        System.out.println("show");
    }
    public void show2(){}
}
